package com.xydtech.ecard.statistics.mapper;

import com.xydtech.ecard.statistics.domain.EcardUserChecking;
import com.xydtech.ecard.statistics.domain.EcardUserCheckingSum;

import java.util.List;
import java.util.Map;

/**
 * 用户考勤Mapper接口
 *
 * @author JHON
 * @date 2022-07-22
 */
public interface EcardUserCheckingMapper {
    /**
     * 查询用户考勤
     *
     * @param id 用户考勤主键
     * @return 用户考勤
     */
    public EcardUserChecking selectEcardUserCheckingById(Long id);

    /**
     * 查询用户考勤列表
     *
     * @param ecardUserChecking 用户考勤
     * @return 用户考勤集合
     */
    public List<EcardUserChecking> selectEcardUserCheckingList(EcardUserChecking ecardUserChecking);

    /**
     * 查询用户考勤汇总
     *
     * @param ecardUserChecking 用户考勤
     * @return 用户考勤集合
     */
    public List<EcardUserCheckingSum> selectEcardUserCheckingSum(EcardUserChecking ecardUserChecking);

    /**
     * 查询用户包保考勤列表
     *
     * @param ecardUserChecking
     * @return 用户考勤统计集合
     */
    public List<EcardUserCheckingSum> selectEcardUserCheckingInfo(EcardUserChecking ecardUserChecking);

    /**
     * 新增用户考勤
     *
     * @param ecardUserChecking 用户考勤
     * @return 结果
     */
    public int insertEcardUserChecking(EcardUserChecking ecardUserChecking);

    /**
     * 修改用户考勤
     *
     * @param ecardUserChecking 用户考勤
     * @return 结果
     */
    public int updateEcardUserChecking(EcardUserChecking ecardUserChecking);

    /**
     * 删除用户考勤
     *
     * @param id 用户考勤主键
     * @return 结果
     */
    public int deleteEcardUserCheckingById(Long id);

    /**
     * 批量删除用户考勤
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEcardUserCheckingByIds(String[] ids);

    /**
     * 查询本周包保（固定）打卡数据
     *
     * @author yjs
     * @date 2022/7/29 16:22
     */
    public List<Map<String, Object>> getFixedWeekPunchInCount(Long userId);

    /**
     * 查询本周营销（非固定）打卡统计
     *
     * @author yjs
     * @date 2022/7/29 16:22
     */
    public List<EcardUserChecking> getNotFixedWeekPunchInList(Long userId);
}
